Zadanie: wychwycenie eventu
Nasz CartProduct powinien już wysyłać event remove – teraz musimy sprawić, aby Cart wychwycił ten event i odpowiednio zareagował.
W metodzie Cart.initActions dodaj listener eventu remove. Ma on działać analogicznie do listenera eventu updated, czyli obserwować element productList.
W handlerze eventu będzie tylko jedna linia kodu – wywołująca metodę thisCart.remove (którą za chwilę napiszemy). Zadbaj o to, aby jako argument przekazywać jej wartość event.detail.cartProduct. Pamiętasz, jak wywołując event, zawarliśmy w nim odwołanie do instancji thisCartProduct? Właśnie w ten sposób (event.detail.cartProduct) teraz ją odbieramy i przekazujemy do metody thisCart.remove.
Ćwiczenie
Stworzenie tej metody będzie już Twoim zadaniem.
Metoda Cart.remove powinna przyjmować jeden argument (właśnie naszą instancję produktu).
Jej zadaniem jest:
- Usunięcie reprezentacji produktu z HTML-a,
- Usunięcie informacji o danym produkcie z tablicy
thisCart.products. - Wywołać metodę
updatew celu przeliczenia sum po usunięciu produktu.
Do wykonania zadania konieczne jest wykorzystanie wbudowanych w JS funkcji. Wszystkie informacje o nich znajdziesz poniżej:
W rezultacie, kliknięcie guzika usuwania przy którejkolwiek pozycji w koszyku, powinno:
- usunąć tę pozycję z koszyka,
- wyświetlić sumy (liczby i cen) obliczone bez usuniętego produktu.
Końcowy efekt powinien być następujący: